<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title>АОТ :: Технологии :: Программный интерфейс компонента морфологического 
			анализа</title>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<link href="../aot.css" rel="stylesheet" type="text/css">
	</head>
	<body bgcolor="#f3f3f3" text="#000000" link="#000000" vlink="#999999" alink="#000000">
		<a name="top"></a>
		<table border="0" align="center" cellpadding="1" cellspacing="0">
			<tr>
				<td bgcolor="#666666"><table width="760" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">
						<tr>
							<td><table border="0" cellspacing="0" cellpadding="5">
									<tr>
										<td width="30">&nbsp;</td>
										<td><font size="+7" face="Arial, Helvetica, sans-serif"><b>АОТ</b></font></td>
										<td width="40">&nbsp;</td>
										<td valign="baseline"><font size="+1" face="Arial, Helvetica, sans-serif"> Автоматическая 
												Обработка Текста</font></td>
									</tr>
								</table>
								<table width="720" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#000000">
									<tr>
										<td height="4"><img src="../images/transparent.gif" width="1" height="4"></td>
									</tr>
								</table>
								<table width="760" border="0" cellpadding="0" cellspacing="0">
									<tr>
										<td valign="top"><table border="0" cellspacing="0" cellpadding="20">
												<tr>
													<td class="text">
														<p align="center"><font size="-1" face="Arial, Helvetica, sans-serif"><a href="/index.html">главная</a>
																<a href="/history.html">о&nbsp;нас</a> <a href="/product.html">продукты</a> <a href="/download.php">
																	скачать</a> <a href="/onlinedemo.html">&nbsp;демо</a> <a href="/technology.html">
																	<b>технологии</b></a>  &nbsp; <a href="#top" title="наверх">^</a></font></p>
														<table width="720" border="0" cellpadding="3" cellspacing="0" bgcolor="#cccccc">
															<tr>
																<td class="titleblack">Программный интерфейс компонента морфологического анализа</td>
															</tr>
														</table>
														<table width="720" border="0" align="center" cellpadding="0" cellspacing="0">
															<tr>
																<td height="7"><img src="../images/transparent.gif" width="1" height="7"></td>
															</tr>
															<tr>
																<td height="2" bgcolor="#000000"><img src="../images/transparent.gif" width="1" height="2"></td>
															</tr>
															<tr>
																<td height="7"><img src="../images/transparent.gif" width="1" height="7"></td>
															</tr>
														</table>
														<p>
															<a href="sokirko/MorphPPT.htm">Описание всех морф. компонент и представлений 
																словарей в слайдах</a>
															<br>
														</p>
														<p><a href="#0">О компоненте морфологического анализа</a></p>
														<p>
															<a href="#2">IParadigm</a></p>
														<p>&nbsp;&nbsp;<a href="#2-1">IParadigmCollection</a>
														</p>
														<p>
															<a href="#4">ILemmatizer</a></p>
														<p>
															&nbsp;&nbsp;<a href="#3-1">IPLMLineCollection</a></p>
														<p>
															<a href="#5">Пример использования COM-интерфейса</a></p>
														<p>&nbsp;</p>
														<table width="720" border="0" cellspacing="0" cellpadding="0">
															<tr>
																<td class="titleblack"><a name="0" id="0"></a><h2>
																		О компоненте морфологического анализа</h2>
																</td>
																<td align="right"><a href="#top" class="titleblack" title="наверх">^</a></td>
															</tr>
														</table>
														<p>
															Данный документ описывает COM-интерфейс морфологического анализатора системы 
															Диалинг. Для Unix-разработчиков, к сожалению, у нас нет специального документа, 
															но в целом Unix-версия повторяет структуру всех представленных здесь 
															интерфейсов, достаточно только переименовать основные типы (BSTR в string, BOOL 
															в bool и т.д.). Программный интерфейс компонента морфологического анализа 
															работает для русского, английского и немецкого языков.</p>
														<p>Компонент экспортирует четыре интерфейса.</p>
														<table width="720" border="0" cellspacing="0" cellpadding="0">
															<tr>
																<td class="titleblack"><a name="2" id="2"></a>IParadigm</td>
																<td align="right"><a href="#top" class="titleblack" title="наверх">^</a></td>
															</tr>
														</table>
														<p><i>Представляет полную парадигму одного слова.</i></p>
														<p>Свойства:</p>
														<table width="720" border="1" cellpadding="3" cellspacing="0" bordercolor="#cccccc">
															<tr bgcolor="#cccccc">
																<th width="160">
																	Название</th>
																<th width="110">
																	Атрибуты</th>
																<th width="110">
																	Тип возвра-щаемого значения</th>
																<th width="130">
																	Аргументы с типом</th>
																<th>
																	Назначение</th>
															</tr>
															<tr>
																<td width="160" valign="top">
																	Norm</td>
																<td width="110" valign="top">
																	Чтение</td>
																<td width="110" valign="top">
																	BSTR</td>
																<td width="130" valign="top">&nbsp;
																</td>
																<td>
																	Нормальная форма слова</td>
															</tr>
															<tr>
																<td width="160" valign="top">
																	Count</td>
																<td width="110" valign="top">
																	Чтение</td>
																<td width="110" valign="top">
																	long</td>
																<td width="130" valign="top">&nbsp;
																</td>
																<td>
																	Количество словоформ в парадигме</td>
															</tr>
															<tr>
																<td width="160" valign="top">
																	Form</td>
																<td width="110" valign="top">
																	Чтение</td>
																<td width="110" valign="top">
																	BSTR</td>
																<td width="130" valign="top">
																	Номер формы от 0, long</td>
																<td>
																	Словоформа, по ее порядковому номеру в парадигме</td>
															</tr>
															<tr>
																<td width="160" valign="top">
																	Ancode</td>
																<td width="110" valign="top">
																	Чтение</td>
																<td width="110" valign="top">
																	BSTR</td>
																<td width="130" valign="top">
																	Номер формы от 0, long</td>
																<td>
																	Информация о словоформе в кодах agramtab.tab, по ее порядковому номеру в 
																	парадигме</td>
															</tr>
															<tr>
																<td width="160" valign="top">
																	TypeAncode</td>
																<td width="110" valign="top">
																	Чтение</td>
																<td width="110" valign="top">
																	BSTR</td>
																<td width="130" valign="top">&nbsp;
																</td>
																<td>
																	Общий анкод парадигмы 
																</td>
															</tr>
															<tr>
																<td width="160" valign="top">
																	ParadigmID</td>
																<td width="110" valign="top">
																	Чтение
																</td>
																<td width="110" valign="top">
																	long</td>
																<td width="130" valign="top">&nbsp;
																</td>
																<td>
																	Уникальный идентификатор парадигмы</td>
															</tr>
															<tr>
																<td width="160" valign="top">
																	SrcAncode</td>
																<td width="110" valign="top">
																	Чтение</td>
																<td width="110" valign="top">
																	BSTR</td>
																<td width="130" valign="top">&nbsp;
																</td>
																<td>
																	Информация о найденной словоформе в кодах agramtab.tab</td>
															</tr>
															<tr>
																<td width="160" valign="top">
																	SrcNorm</td>
																<td width="110" valign="top">
																	Чтение</td>
																<td width="110" valign="top">
																	BSTR</td>
																<td width="130" valign="top">&nbsp;
																</td>
																<td>
																	Нормальная форма слова, которое служит родителем искомого при предсказании</td>
															</tr>
															<tr>
																<td width="160" valign="top">
																	WordWeight</td>
																<td width="110" valign="top">
																	Чтение</td>
																<td width="110" valign="top">
																	long</td>
																<td width="130" valign="top">&nbsp;
																</td>
																<td>
																	Частота встречаемости слова в массиве обучающих текстов</td>
															</tr>
															<tr>
																<td width="160" valign="top">
																	HomonymWeight</td>
																<td width="110" valign="top">
																	Чтение</td>
																<td width="110" valign="top">
																	long</td>
																<td width="130" valign="top">&nbsp;
																</td>
																<td>
																	Частота встречаемости омонима</td>
															</tr>
															<tr>
																<td width="160" valign="top">
																	Founded</td>
																<td width="110" valign="top">
																	Чтение</td>
																<td width="110" valign="top">
																	BOOL</td>
																<td width="130" valign="top">&nbsp;
																</td>
																<td>
																	TRUE, если слово найдено в словаре</td>
															</tr>
															<tr>
																<td width="160" valign="top">
																	BaseLength</td>
																<td width="110" valign="top">
																	Чтение</td>
																<td width="110" valign="top">
																	UINT</td>
																<td width="130" valign="top">&nbsp;
																</td>
																<td>
																	Длина псевдоосновы (неизм. части парадигмы)
																</td>
															</tr>
														</table>
														<p>&nbsp;</p>
														<table width="720" border="0" cellspacing="0" cellpadding="0">
															<tr>
																<td width="20"><a name="2-1" id="2-1"></a></td>
																<td class="titleblack"><h2>
																		IParadigmCollection</h2>
																	<b><u></u></b>
																</td>
																<td align="right"><a href="#top" class="titleblack" title="наверх">^</a></td>
															</tr>
														</table>
														<p>Коллекция объектов IParadigm</p>
														<p>Свойства:</p>
														<table width="720" border="1" cellpadding="3" cellspacing="0" bordercolor="#cccccc">
															<tr bgcolor="#cccccc">
																<th width="160">
																	Название</th>
																<th width="110">
																	Атрибуты</th>
																<th width="110">
																	Тип возвра-щаемого значения</th>
																<th width="130">
																	Аргументы с типом</th>
																<th>
																	Назначение</th>
															</tr>
															<tr>
																<td width="160" valign="top">
																	Count</td>
																<td width="110" valign="top">
																	Чтение</td>
																<td width="110" valign="top">
																	long</td>
																<td width="130" valign="top">&nbsp;
																</td>
																<td>
																	Количество объектов в коллекции</td>
															</tr>
															<tr>
																<td width="160" valign="top">
																	Item</td>
																<td width="110" valign="top">
																	Чтение</td>
																<td width="110" valign="top">
																	*IParadigm</td>
																<td width="130" valign="top">
																	Номер элемента от 0</td>
																<td>
																	Получить элемент коллекции по номеру ( допустим доступ по [])</td>
															</tr>
														</table>
														<table width="720" border="0" cellspacing="0" cellpadding="0">
															<tr>
																<td width="20"><a name="3-1" id="3-1"></a></td>
																<td class="titleblack"><h2>
																		IPLMLineCollection</h2>
																	<b><u></u></b>
																</td>
																<td align="right"><a href="#top" class="titleblack" title="наверх">^</a></td>
															</tr>
														</table>
														<p><i>Коллекция строк, порожденных графематическим анализом, к которым добавлены 
																нормальная форма, коды agramtab.tab и ParadigmID.</i></p>
														<p>Свойства:</p>
														<table width="720" border="1" cellpadding="3" cellspacing="0" bordercolor="#cccccc">
															<tr bgcolor="#cccccc">
																<th width="160">
																	Название</th>
																<th width="110">
																	Атрибуты</th>
																<th width="110">
																	Тип возвра-щаемого значения</th>
																<th width="130">
																	Аргументы с типом</th>
																<th>
																	Назначение</th>
															</tr>
															<tr>
																<td width="160" valign="top">
																	Count</td>
																<td width="110" valign="top">
																	Чтение</td>
																<td width="110" valign="top">
																	long</td>
																<td width="130" valign="top">&nbsp;
																</td>
																<td>
																	Количество объектов в коллекции</td>
															</tr>
															<tr>
																<td width="160" valign="top">
																	Item</td>
																<td width="110" valign="top">
																	Чтение/Запись</td>
																<td width="110" valign="top">
																	BSTR</td>
																<td width="130" valign="top">
																	Номер элемента от 0</td>
																<td>
																	Доступ к элементу коллекции по номеру ( допустим доступ по [])</td>
															</tr>
														</table>
														<p>Методы:</p>
														<blockquote>
															<dl>
																<dt><b>HRESULT Remove([in] long pos)</b>
																	<dd>
																		<i>удалить строчку с номером pos</i> <dt><b>HRESULT SaveToFile([in] BSTR filename)</b>
																			<dd>
																				<i>сохранить коллекцию в файл filename</i> <dt><b>HRESULT ProcessPlmLines([in] 
																						IGraphmatFile* piGraphmatFile)</b>
																					<dd>
																						<i>по интерфейсу piGraphmatFile</i><br>
																						<dt><b>HRESULT AttachLemmatizer(ILemmatizer* pVal)</b>
																							<dd>
																								<i>присоединяет морфологический словарь</i><br>
																								pVal - указатель на морфологию <dt><b>HRESULT CopyItems(IUnknown* pVal)</b>
																									<dd>
																										<i>импортирует все строки из pVal</i> </I><br>
																										pVal - указатель на интерфейс IPLMLineCollection <dt><b>HRESULT Clear()</b>
																											<dd>
																												<i>обнуляет коллекцию</i><br>
																											</dd>
															</dl>
														</blockquote>
														<p>&nbsp;</p>
														<table width="720" border="0" cellspacing="0" cellpadding="0">
															<tr>
																<td class="titleblack"><a name="4" id="4"></a><h2>ILemmatizer</h2>
																	<u></u>
																</td>
																<td align="right"><a href="#top" class="titleblack" title="наверх">^</a></td>
															</tr>
														</table>
														<p><i>Морфоанализатор.</i></p>
														<p>Свойства:</p>
														<table width="720" border="1" cellpadding="3" cellspacing="0" bordercolor="#cccccc">
															<tr bgcolor="#cccccc">
																<th width="160">
																	Название</th>
																<th width="110">
																	Атрибуты</th>
																<th width="110">
																	Тип возвра-щаемого значения</th>
																<th width="130">
																	Аргументы с типом</th>
																<th>
																	Назначение</th>
															</tr>
															<tr>
																<td width="160" valign="top">
																	UsePrediction</td>
																<td width="110" valign="top">
																	Чтение/ Запись</td>
																<td width="110" valign="top">
																	BOOL</td>
																<td width="130">&nbsp;
																</td>
																<td>
																	Использовать предсказание(по умолчанию - FALSE)</td>
															</tr>
															<tr>
																<td width="160" valign="top">
																	UseStatistic</td>
																<td width="110" valign="top">
																	Чтение/ Запись</td>
																<td width="110" valign="top">
																	BOOL</td>
																<td width="130">&nbsp;</td>
																<td>
																	Использовать статистику для выявления наиболее вероятного омонима (по умолчанию 
																	FALSE)</td>
															</tr>
															<tr>
																<td width="160" valign="top">
																	MaximalPrediction</td>
																<td width="110" valign="top">
																	Чтение/ Запись</td>
																<td width="110" valign="top">
																	BOOL</td>
																<td width="130">&nbsp;
																</td>
																<td>Использовать максимальное предсказание (когда выдаются все гипотезы, а не 
																	только наилучшие). Наилучшая гипотеза - это та гипотеза, у которой совпадение с 
																	конца максимально.(по умолчанию равно FALSE)</td>
															</tr>
														</table>
														<p>Методы:</p>
														<blockquote>
															<dl>
																<dt><b>LoadDictionariesRegistry([in] long reserved)</b>
																	<dd>
																		<i>метод загружает словари в память.</i> Путь к словарям берется из файла 
																		$RML\rml.ini HKEY_LOCAL_MACHINE\Software\Dialing\Lemmatizer\Russian\DictPath - 
																		для русского и HKEY_LOCAL_MACHINE\Software\ Dialing\Lemmatizer\English\DictPath 
																		- для английского языка<br>
																		reserved - всегда 0 <dt><b>LoadStatisticRegistry([in] _subject_t subj)</b>
																			<dd>
																				<i>метод загружает файлы статистики в память.</i> Путь к файлам берется из 
																				файла $RML\rml.ini 
																				HKEY_LOCAL_MACHINE\Software\Dialing\Lemmatizer\Russian\DictPath - для русского 
																				и HKEY_LOCAL_MACHINE\Software\ Dialing\Lemmatizer\English\DictPath - для 
																				английского языка<br>
																				subj - код предметной области:
																				<ul>
																					<li>
																					subjFinance - финансы
																					<li>
																					subjComputer - компьютер
																					<li>
																						subjLiterature - худ. литература</li>
																				</ul>
																				<dt><b>CreateParadigmCollectionFromNorm ([in] BSTR norm, [in] BOOL capital, [out, 
																						retval] IParadigmCollection* *pVal)</b>
																					<dd>
																						<i>находит все слова с данной нормальной формой и помещает их парадигмы в 
																							коллекцию, указатель на которую и возвращает.</i> Если слова нет в словаре 
																						и если UsePrediction = TRUE, возвращает наиболее вероятные варианты.<br>
																						norm - нормальная форма<br>
																						capital - считается ли, что слово начиналось с большой буквы <dt><b>CreateParadigmCollectionFromForm 
																								([in] BSTR form, [in] BOOL capital, [out, retval] IParadigmCollection* *pVal)</b>
																							<dd>
																								<i>находит все слова, которые могут иметь данную форму и помещает их парадигмы в 
																									коллекцию, указатель на которую и возвращает.</i> Если слова нет в словаре 
																								и если UsePrediction = TRUE, возвращает наиболее вероятные варианты.<br>
																								form - форма<br>
																								capital - считается ли, что слово начиналось с большой буквы <dt><b>CreateParadigmFromID([in] 
																										long id, [out, retval] IParadigm* *pVal)</b>
																									<dd>
																										<i>создает объект IParadigm по уникальному идентификатору и возвращает указатель на 
																											него.</i><br>
																										Id - идентификатор</dd>
															</dl>
														</blockquote>
														<p>Использование:</p>
														<ol>
															<li>
																Создайте объект с интерфейсом <i>Ilemmatizer </i>(<b>coclass</b><i> LemmatizerRussian</i>- 
																для русского языка, <b>coclass</b><i> Lemmatize</i><i>rEnglish</i><i> - </i>для 
																английского ) , загрузите словари(<i>LoadDictionaries</i>) и пользуйтесь.
															<li>
															Т.к. словари имеют довольно большой объем, их загрузка занимает некоторое 
															время, поэтому рекомендуется создавать объект, как глобальный.
															<li>
															Рекомендуется использовать #import и smart pointers.
															<li>
																<a href="morphexam_cpp.htm">Пример использования на MS Visual C++. </a>
															<li>
																<a href="morphexam_delphi.htm">Пример использования на Borland Delphi. </a>
															<li>
																<a href="morphexam_delphi1.htm">Пример использования на Borland Delphi (с выдачей 
																	морф. характеристик). </a>
															<li>
																<a href="morphexam_python.htm">Пример использования на Python (от Саши Костыркина). </a>
															</li>
														</ol>
												</tr>
											</table>
											<p align="center"><font size="-1" face="Arial, Helvetica, sans-serif"><a href="/index.html">главная</a>
													<a href="/history.html">о&nbsp;нас</a> <a href="/product.html">продукты</a> <a href="/download.php">
														скачать</a> <a href="/onlinedemo.html">&nbsp;демо</a> <a href="/technology.html">
														<b>технологии</b></a>  
														&nbsp; <a href="#top" title="наверх">^</a></font></p>
										</td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<td valign="bottom"><table width="750" border="0" cellspacing="0" cellpadding="0">
									<tr>
										<td>&nbsp;</td>
										<td align="right"><table border="0" cellspacing="5" cellpadding="0">
												<tr>
													<td align="right"><font color="#999999" size="1">Разработка <a href="mailto:simple@mosk.ru">
																<font color="#999999">DiP</font></a>.<br>
															© 2003 <a href="http://www.aot.ru/"><font color="#999999">АОТ</font></a>. Все 
															права защищены.</font></td>
												</tr>
											</table>
										</td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
				</td>
			</tr>
		</table>
		</TD>
		<td bgcolor="#CCCCCC"><img src="../images/transparent.gif" width="1" height="1"></td>
		</TR>
		<tr>
			<td bgcolor="#CCCCCC"><img src="../images/transparent.gif" width="1" height="1"></td>
			<td bgcolor="#CCCCCC"><img src="../images/transparent.gif" width="1" height="1"></td>
		</tr>
		</TABLE>
	</body>
</html>
